package utwente.sem.eindopdracht.tests;

import utwente.sem.eindopdracht.*;
import junit.framework.TestCase;

public class TestAssemblageLijn extends TestCase {
	
	private AssemblageLijn assemblageLijn;
	private ProductRun productrun;
	
	/**
	 * Opstarten
	 */
	public void setUp() {
		assemblageLijn = new AssemblageLijn(0);
		productrun = new ProductRun();
		
		Product product = new Product();
		Blauwdruk blauwdruk = new Blauwdruk();
		blauwdruk.setStap(0, "Voer stap uit");
		product.setBlauwdruk(blauwdruk);
		productrun.setProduct(product);
		productrun.setAantalProducten(12);
		productrun.setTijd(1200);
	}
	
	/**
	 * Afsluiten
	 */
	public void tearDown() {
		assemblageLijn = null;
		productrun = null;
	}
	
	/**
	 * Test de status van de AssemblageLijn.
	 */
	public void testStatus() {
		assertEquals(AssemblageLijn.STATUS_IDLE, assemblageLijn.getStatus());
		assemblageLijn.setProductRun(productrun);
		assertEquals(AssemblageLijn.STATUS_ASSIGNED, assemblageLijn.getStatus());
		assemblageLijn.clearProductRun();
		assertEquals(AssemblageLijn.STATUS_IDLE, assemblageLijn.getStatus());
	}
	
	/**
	 * Test een run van een assemblagelijn.
	 */
	public void testRun() {
		assemblageLijn.setProductRun(productrun);
		assertEquals(true, assemblageLijn.isStartbaar());
		assemblageLijn.start();
		assertEquals(true, assemblageLijn.isPauzeerbaar());
		assertEquals(AssemblageLijn.STATUS_RUNNING, assemblageLijn.getStatus());
	}

}
